package com.fly.jface.window;

import org.eclipse.jface.action.CoolBarManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.StatusLineManager;
import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class Window2 extends ApplicationWindow
{
    
    /**
     * Create the application window,
     */
    public Window2()
    {
        super(null);
        createActions();
        addCoolBar(SWT.FLAT);
        addMenuBar();
        addStatusLine();
    }
    
    /**
     * Create contents of the application window.
     * 
     * @param parent
     */
    @Override
    protected Control createContents(Composite parent)
    {
        Composite container = new Composite(parent, SWT.NONE);
        return container;
    }
    
    /**
     * Create the actions.
     */
    private void createActions()
    {
        // Create the actions
    }
    
    /**
     * Create the menu manager.
     * 
     * @return the menu manager
     */
    @Override
    protected MenuManager createMenuManager()
    {
        MenuManager menuManager = new MenuManager("menu");
        return menuManager;
    }
    
    /**
     * Create the coolbar manager.
     * 
     * @return the coolbar manager
     */
    @Override
    protected CoolBarManager createCoolBarManager(int style)
    {
        CoolBarManager coolBarManager = new CoolBarManager(style);
        return coolBarManager;
    }
    
    /**
     * Create the status line manager.
     * 
     * @return the status line manager
     */
    @Override
    protected StatusLineManager createStatusLineManager()
    {
        StatusLineManager statusLineManager = new StatusLineManager();
        return statusLineManager;
    }
    
    /**
     * Launch the application.
     * 
     * @param args
     */
    public static void main(String args[])
    {
        try
        {
            Window2 window = new Window2();
            window.setBlockOnOpen(true);
            window.open();
            Display.getCurrent().dispose();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
    
    /**
     * Configure the shell.
     * 
     * @param newShell
     */
    @Override
    protected void configureShell(Shell newShell)
    {
        super.configureShell(newShell);
        newShell.setText("New Application");
    }
    
    /**
     * Return the initial size of the window.
     */
    @Override
    protected Point getInitialSize()
    {
        return new Point(800, 600);
    }
    
}
